package com.soup.common.entity;

import lombok.Getter;

/**
 * 错误码
 *
 * @author zhaoyi
 */
@Getter
public enum ErrorCode {

    /**
     * 系统错误码
     */
    SUCCESS(0, "success"),
    FAILURE(400, "fail"),
    AUTH_FAIL(403, "Authentication failed！"),
    NOT_FOUND(404, "not found！"),
    METHOD_NOT_ALLOWED(405, "Method not allowed！"),
    SERVER_FAIL(500, "server fail！"),
    NOT_SUPPORT_FILE_EXTENSION(10000, "不支持的文件格式，请重新选择！"),
    FILE_TO_LARGE(10001, "文件过大！"),
    PARAM_ERROR(10002, "请求参数错误！"),
    AUTH_TOKEN_NOT_EXISTED(10003, "登录失效，请重新登录！"),
    AUTH_TOKEN_IS_EXPIRED(10004, "登录已过期，请重新登录！"),
    NO_AUTH_ACCESS(10005, "您没有权限访问该菜单或功能，请联系管理员！"),
    ADMIN_DELETED(10006, "您已经被管理员移除，请联系管理员！"),
    EXCLE_DATA_ERROR(10007, "Excle数据错误，请重新选择文件！"),
    UPFILE_IS_EMPTY(10008, "上传文件不能为空！"),
    UPFILE_SAVE_FAIL(10009, "上传文件失败，未正常保存！"),
    FILE_NOT_FOUND(10010, "文件未找到，请联系管理员！"),
    FILE_CONNOT_DOWNLOAD(10011, "文件不合法，无法下载！"),

    /**
     * sys编码规则：11xxx表示用户相关，12xxx表示字典相关，13xxx表示角色相关，14xxx表示菜单相关
     */
    USER_NOT_FOUND(11000, "用户不存在！"),
    USER_PWD_ERROR(11001, "密码错误！"),
    USER_FORBIDDEN(11002, "用户已被禁用，请联系管理员！"),
    USER_LOGINNAME_EXSITED(11003, "登录名已存在，请求重新输入！"),
    USER_KAPTCHA_ERROR(11004, "验证码错误！"),
    USER_PASSWORD_ERROR(11005, "当前密码错误！"),
    USER_PASSWORD_INCONFORMITY(11006, "新密码和重复密码不一致，请重新输入！"),
    USER_DEL_NOT_SUPPORT(11007, "默认用户无法删除！"),

    DICT_PARENT_TYPE_PARAM_ERROR(12000, "新增字典失败，父级字典的分类不能为空！"),
    DICT_PARENT_TYPE_NAME_PARAM_ERROR(12001, "新增字典失败，父级字典的分类名称不能为空！"),
    DICT_PARENT_TYPE_EXISTED(12002, "新增字典失败，父级字典的分类类型已存在！"),
    DICT_ADD_ERROR(12003, "新增字典失败，父级字典不存在或已被删除！"),
    DICT_ADD_DUPLICATED(12004, "字典名称已存在！"),
    DICT_NOT_FOUND(12005, "字典不存在或已被删除！"),

    ROLE_ADD_DUPLICATED(13000, "新增角色失败，角色已存在！"),
    ROLE_UPDATE_ERROR(13001, "修改角色失败，角色名称已存在！"),
    ROLE_NOT_FOUND(13002, "角色不存在或已被删除！"),
    ROLE_DEL_ERROR(13003, "角色删除失败，角色下还有用户使用，无法删除！"),
    ROLE_DEL_NOT_SUPPORT(13004, "默认角色无法删除！"),
    ROLE_PRIVILEGE_NOT_SUPPORT(13005, "默认角色无法修改权限菜单！"),

    MENU_ADD_DUPLICATED(14000, "操作失败，菜单名称已存在！"),
    MENU_NOT_FOUND(14001, "操作失败，菜单不存在或已被删除！"),
    MENU_PARENT_NOT_FOUND(14002, "操作失败，父级菜单不存在或已被删除！"),
    MENU_PARENT_NOT_CORRECT(14003, "操作失败，方法菜单上级必须是分组菜单或控制器菜单！"),
    MENU_TYPE_NOT_CORRECT(14004, "操作失败，顶级菜单不可以方法菜单或控制器菜单！"),
    MENU_HAS_CHILD(14005, "操作失败，菜单下还有子级菜单！"),

    ;

    private int code;

    private String message;

    ErrorCode(int code, String message) {
        this.code = code;
        this.message = message;
    }
}
